/*
    2020年5月19日18:11:24
    在不改变链表的前提下找到带头结点的单链表中的倒数第K个元素并输出
*/

#include <iostream>
using namespace std;
typedef struct List
{
	int data;
	struct List * pNext;
}List, *pList;

int findelem(pList head, int k)
{
    pList p1 = head->pNext;
    pList p = head;
    int i = 1;
    while(p != NULL)
    {
        p1 = p1->pNext;
        ++i;
        if(i > k)p = p->pNext;  //如果i > k则p也往后移
    }
    if(p == head) return 0; //说明链表没有k个结点
    else
    {
        cout << p->data << endl;
        return 1;
    }
}